<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Model_gerenciar extends CI_Model {

    /**
     * Model principal academico;
     */
    function __construct() {
        parent::__construct();
    }

    function get_crd_list($ativo = 'S') {
        $this->db->select('u.co_usuario id, u.no_pessoa nome, u.no_login_usuario user, u.ds_email_usuario email' .
                ' ,date_format(u.dt_nascimento_pessoa, "%d/%m/%Y") dtnasc, u.sg_sexo_pessoa sexo', false);
        $this->db->from('vw_usuario u');
        $this->db->where('u.co_tipo_usuario', 2);
        $this->db->where('u.st_usuario_ativo', $ativo);
        $this->db->order_by("u.no_pessoa", "asc");
        $query = $this->db->get();
        $list = $query->result_array();
        $lc = count($list);
        return ['total' => $lc, 'rows' => $list];
    }
    
    function get_dcp_list($ativo = 'S') {
        $this->db->select('u.co_disciplina id, c.no_curso curso, u.no_disciplina nome, u.nu_matriz_vigente matriz, st_permite_ead ead');
        $this->db->from('tb_disciplina u');
        $this->db->join('tb_curso c', 'u.co_curso=c.co_curso');
//        $this->db->where('u.co_curso', 1);
        $this->db->where('u.st_ativo', $ativo);
        $this->db->order_by("u.no_disciplina", "asc");
        $query = $this->db->get();
        $list = $query->result_array();
        $lc = count($list);
        return ['total' => $lc, 'rows' => $list];
    }

    function get_pessoa($user) {
        $this->db->select('CO_PESSOA');
        $this->db->from('tb_usuario');
        $this->db->where('CO_USUARIO', $user);
        $query = $this->db->get();
        $data = $query->result_array();
        return $data[0]['CO_PESSOA'];
    }

    function novocrd($userData) {
        $dtNSC = implode("-", array_reverse(explode("/", $userData['dtnasc'])));
        $dataPessoa = ['NO_PESSOA' => $userData['nome'], 'DT_NASCIMENTO_PESSOA' => $dtNSC, 'SG_SEXO_PESSOA' => $userData['sexo']];
        $p = $this->db->insert('tb_pessoa', $dataPessoa);
        $co_pessoa = $this->db->insert_id();
        if ($p) {
            $dataCrd = ['CO_PESSOA' => $co_pessoa, 'CO_TITULACAO' => '9'];
            $c = $this->db->insert('tb_coordenador', $dataCrd);
        } else {
            return false;
        }
        if ($p && $c) {
            $dataUsu = ['CO_PESSOA' => $co_pessoa, 'CO_TIPO_USUARIO' => '2', 'NO_LOGIN_USUARIO' => $userData['user'],
                'NO_SENHA_USUARIO' => 'fcea920f7412b5da7be0cf42b8c93759', 'DS_EMAIL_USUARIO' => $userData['email']];
            $c = $this->db->insert('tb_usuario', $dataUsu);
        } else {
            return false;
        }
        return true;
    }

    function editCrd($userId, $userData) {
        $dtNSC = implode("-", array_reverse(explode("/", $userData['dtnasc'])));
        $dataUsu = ['CO_TIPO_USUARIO' => '2', 'NO_LOGIN_USUARIO' => $userData['user'],
            'NO_SENHA_USUARIO' => 'fcea920f7412b5da7be0cf42b8c93759', 'DS_EMAIL_USUARIO' => $userData['email']];
        $this->db->where('CO_USUARIO', $userId);
        $c = $this->db->update('tb_usuario', $dataUsu);
        $co_pessoa = $this->get_pessoa($userId);
        if ($c) {
            $dataPessoa = ['NO_PESSOA' => $userData['nome'], 'DT_NASCIMENTO_PESSOA' => $dtNSC, 'SG_SEXO_PESSOA' => $userData['sexo']];
            $this->db->where('CO_PESSOA', $co_pessoa);
            $this->db->update('tb_pessoa', $dataPessoa);
        } else {
            return false;
        }
        return true;
    }

    function editPsw($userId, $userData, $userTK) {
        $md5TK = md5($userData['token']);
        $this->db->from('vw_usuario');
        $this->db->where('co_usuario', $userTK);
        $this->db->where('no_senha_usuario', $md5TK);
        $tkVal = $this->db->count_all_results();
        if ($tkVal > 0) {
            $dataUsu = ['NO_SENHA_USUARIO' => md5($userData['pws'])];
            $this->db->where('CO_USUARIO', $userId);
            $c = $this->db->update('tb_usuario', $dataUsu);
            if($c){
                return ['status'=>'success', 'msg'=> 'A senha foi alterada '];
            } else {
                return ['status'=>'error', 'msg'=> 'Erro ao alterar a senha'];
            }
        } else {
            return ['status'=>'error', 'msg'=> 'Sua senha não está correta'];
        }
    }

    function removeCrd($userId) {
        $dataUsu = ['ST_ATIVO' => 'N'];
        $this->db->where('CO_USUARIO', $userId);
        $c = $this->db->update('tb_usuario', $dataUsu);
        return ($c) ? true : false;
    }
    
    function novadcp($dcpData) {
        $dadosDisciplina = ['NO_DISCIPLINA' => $dcpData['nome'], 'NU_MATRIZ_VIGENTE' => $dcpData['matriz'], 
            'ST_PERMITE_EAD' => $dcpData['ead'], 'CO_CURSO' => $dcpData['curso']];
        $p = $this->db->insert('tb_disciplina', $dadosDisciplina);
        return ($p) ? true : false;
    }
    
    function editDcp($dcpId, $dcpData) {
        $dadosDisciplina = ['NO_DISCIPLINA' => $dcpData['nome'], 'NU_MATRIZ_VIGENTE' => $dcpData['matriz'], 
            'ST_PERMITE_EAD' => $dcpData['ead'], 'CO_CURSO' => $dcpData['curso']];
        if(!is_numeric($dadosDisciplina['CO_CURSO'])){
            array_pop($dadosDisciplina['CO_CURSO']);
        }
        $this->db->where('CO_DISCIPLINA', $dcpId);
        $c = $this->db->update('tb_disciplina', $dadosDisciplina);
        return ($c) ? true : false;
    }
    
    function removeDcp($dcpId) {
        $dataDcp = ['ST_ATIVO' => 'N'];
        $this->db->where('CO_DISCIPLINA', $dcpId);
        $c = $this->db->update('tb_disciplina', $dataDcp);
        return ($c) ? true : false;
    }

}

/* End of file model_academico.php */
    /* Location: ./application/models/model_gerenciar.php */    